﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using Unimaq.FacturaDBS_Spring.LogicaNegocio;

namespace Unimaq.FacturaDBS_Spring.WinForms_Presentacion
{
    public partial class Form1 : Form
    {
        List<Entidades.FacturaDBS_Cabecera> listaInput;
        List<Entidades.Spring.FacturaSpring_Cabecera2> listaOutput;

        public Form1()
        {
            InitializeComponent();

            listaInput = new List<Entidades.FacturaDBS_Cabecera>();
            listaOutput = new List<Entidades.Spring.FacturaSpring_Cabecera2>();
        }

        private void btnExaminar_Click(object sender, EventArgs e)
        {
            OpenFileDialog buscarArchivo = new OpenFileDialog();
            CabeceraFacturaBLL cabeceraFacturaBLL = new CabeceraFacturaBLL();

            DialogResult dr = buscarArchivo.ShowDialog();

            if (dr == DialogResult.OK)
            {
                listaInput.Clear();
                txtRuta.Text = buscarArchivo.FileName;
                listaInput = cabeceraFacturaBLL.ReadTextFile(txtRuta.Text);

                gridInput.DataSource = null;
                gridInput.DataSource = listaInput;
                gridInput.ClearSelection();
                lblFilasLeidas.Text = listaInput.Count.ToString();
            }
        }

        private void btnConvertir_Click(object sender, EventArgs e)
        {
            CabeceraFacturaBLL cabeceraFacturaBLL = new CabeceraFacturaBLL();

            listaOutput = cabeceraFacturaBLL.ToSpring_Cabecera(listaInput);

            gridConversion.DataSource = null;
            gridConversion.DataSource = listaOutput;
            gridConversion.ClearSelection();
            lblfilasProcesadas.Text = listaOutput.Count.ToString();
        }

        private void btnCerrar_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private void btnExportar_Click(object sender, EventArgs e)
        {
            CabeceraFacturaBLL cabeceraFacturaBLL = new CabeceraFacturaBLL();

            SaveFileDialog saveDialog = new SaveFileDialog();
            saveDialog.Filter = "Archivo de texto tabulado (*.txt)|*.txt";

            if (saveDialog.ShowDialog() == DialogResult.OK)
            {
                switch (saveDialog.FilterIndex)
                {
                    case 1: //archivo de texto tabulado
                        cabeceraFacturaBLL.exportarArchivo(saveDialog.FileName,listaOutput, "TAB");
                        break;
                }

                MessageBox.Show("Archivo generado correctamente", "Factura DBS_Spring (Cabecera)", MessageBoxButtons.OK, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button1);
            }
        }
    }
}
